
    # 设置颜色开始 ：\033[显示方式;前景色;背景色m  需要显示的内容\033[显示方式m
    # 说明：
    # 前景色            背景色           颜色           显示方式           意义
    # ---------------------------------------        --------------------------------------------------
    # 30                40              黑色          0                终端默认设置
    # 31                41              红色          1                高亮显示
    # 32                42              绿色          4                使用下划线
    # 33                43              黃色          5                闪烁
    # 34                44              蓝色          7                反白显示
    # 35                45              紫红       
    # 36                46              青蓝
    # 37                47              白色
    # 无底红色默认显示
    # \033[0;31m  需要显示的内容 \033[0m

class LF_LOG:
        
    # 文本上色 「 仅支持可以转义ANSI的终端解释器 」  
    # @value : string            | 文本
    # @font_color : string       | 字体颜色
    # @background_color : string | 背景颜色
    # @clas : int                | 显示方式
    # retuen : string | 处理结果 
    @classmethod
    def ANSI_color(cls,value='_',font_color='none',background_color='none',clas:int=0):
        colors = {
            'white': [37,47],       # 白色
            'yello': [33,43],       # 黃色
            'red': [31,41],         # 红色
            'green': [32,42],       # 绿色
            'cyan': [36,46],        # 青蓝
            'blue': [34,44],        # 蓝色
            'Purple': [35,45],      # 紫红
            'black': [30,40],       # 黑色
            'none': [0,0],          # 默认
        }

        font_color = colors.get(font_color,[0,0])[0]
        background_color = colors.get(background_color,[0,0])[1]
        if background_color != 0 :
            background_color = f";{background_color}"
        else:
            background_color=''
        
        return f"\033[{clas};{font_color}{background_color}m{value}\033[0m"



if __name__ == "__main__":
    print(LF_LOG.ANSI_color('white','white'))
    print(LF_LOG.ANSI_color('yello','yello'))
    print(LF_LOG.ANSI_color('red','red'))
    print(LF_LOG.ANSI_color('green','green'))
    print(LF_LOG.ANSI_color('cyan','cyan'))
    print(LF_LOG.ANSI_color('blue','blue'))
    print(LF_LOG.ANSI_color('Purple','Purple'))
    print(LF_LOG.ANSI_color('black','black'))

    print(LF_LOG.ANSI_color('white  black','white','black'))
    print(LF_LOG.ANSI_color('yello  Purple','yello','Purple'))
    print(LF_LOG.ANSI_color('red  blue','red','blue'))
    print(LF_LOG.ANSI_color('green  cyan','green','cyan'))
    print(LF_LOG.ANSI_color('cyan  green','cyan','green'))
    print(LF_LOG.ANSI_color('blue  red','blue','red'))
    print(LF_LOG.ANSI_color('Purple  yello','Purple','yello'))
    print(LF_LOG.ANSI_color('black  white','black','white'))

    print(LF_LOG.ANSI_color('终端默认设置','cyan',clas=0))
    print(LF_LOG.ANSI_color('高亮显示','cyan',clas=1))
    print(LF_LOG.ANSI_color('使用下划线','cyan',clas=4))
    print(LF_LOG.ANSI_color('闪烁','cyan',clas=5))
    print(LF_LOG.ANSI_color('反白显示','cyan',clas=7))


